#ifndef TestCommonParent_h
#define TestCommonParent_h

#include <vector>
#include <cppunit/extensions/HelperMacros.h>
#include "Type.h"
#include "CommonParent.h"
#include "Utilities.h"

class CommonParentTest : public CPPUNIT_NS::TestFixture 
{
	Type::List::Line validLineInputWhile, validParentInputWhile; 
	Type::List::Line validLineInputIf, validParentInputIf; 
	Type::List::Line invalidLineInput, nonExistLineInput;
	Type::Map::LineMatrix validMatrix, invalidMatrix;

	CommonParent commonParent;
	std::string msg;

	CPPUNIT_TEST_SUITE( CommonParentTest );
	CPPUNIT_TEST( testSetCommon );
	CPPUNIT_TEST( testGetCommon );
	CPPUNIT_TEST( testIsCommon );
	CPPUNIT_TEST_SUITE_END();
private:
	void testSetCommonWhile(Type::List::Line, Type::List::Line, bool, std::string);
	void testGetCommonWhile(Type::List::Line, Type::List::Line, bool, std::string);
	void testIsCommonWhile(Type::List::Line, Type::List::Line, bool, std::string);
	void testSetCommonIf(Type::List::Line, Type::List::Line, bool, std::string);
	void testGetCommonIf(Type::List::Line, Type::List::Line, bool, std::string);
	void testIsCommonIf(Type::List::Line, Type::List::Line, bool, std::string);
public:
	void setUp();
	void tearDown();

	void testSetCommon();
	void testGetCommon();
	void testIsCommon();
};
#endif